#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 20

int a[N];
void genrandom(int upper)
{
	for (int i = 0; i < N; i++) {
		a[i] = rand() % upper;
	}
}

int findMax(int *array)
{
	int max = 0;
	for (int i = 0; i < 10; i++) {
		if (array[i] > max)
			max = array[i];
	}
	return max;
}

void printHistogram(int *histogram)
{
	int copy[10];
	for (int i = 0; i < 10; i++) {
		copy[i] = histogram[i];
	}
	int max = findMax(copy);
	// printf("max = %d.\n",max);
	for (int i = 0; i < max + 1; i++) {
		for (int j = 0; j < 10; j++) {
			if (copy[j] > 0) {
				printf("*\t");
				copy[j] = copy[j] - 1;
			} else if (copy[j] == 0) {
				printf("(%d)\t", histogram[j]);
				copy[j] = copy[j] - 1;
			} else
				printf("\t");
		}
		printf("\n");
	}

}

int main(void)
{
	int i, histogram[10] = { 0 };
	srand(time(NULL));

	genrandom(10);
	for (i = 0; i < N; i++)
		histogram[a[i]]++;

	// for(i = 0; i <10; i++)
	//      printf("%d\t",histogram[i]);
	// printf("\n");

	for (i = 0; i < 10; i++)
		printf("%d\t", i);
	printf("\n");
	printHistogram(histogram);

	return 0;
}
